﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SMA.GENTEv1.Dados;

namespace SMA.GENTEv1
{
    public class MotivoDemissao
    {
        #region Variaveis Membro
        private int _idMotivoDemissao;
        private string _descricao;
        private int? _codigoRAIS;
        private string _flag;
        private GENTEEntities _context;
        #endregion

        #region Parametros
        public int IdMotivoDemissao
        {
            get { return _idMotivoDemissao; }
            set { _idMotivoDemissao = value; }
        }
        
        public string Descricao
        {
            get { return _descricao; }
            set { _descricao = value; }
        }
        
        public int? CodigoRAIS
        {
            get { return _codigoRAIS; }
            set { _codigoRAIS = value; }
        }
        
        public string Flag
        {
            get { return _flag; }
            set { _flag = value; }
        }
        #endregion

        #region Construtores
        public MotivoDemissao()
        {
            _context = new GENTEEntities();
        }

        public MotivoDemissao(int _idmotivodemissao, bool _carregaDados)
        {
            _context = new GENTEEntities();
            if (!_carregaDados)
                this._idMotivoDemissao = _idmotivodemissao;
            else
                Carregar(_idmotivodemissao);
        }
        #endregion

        #region Métodos Privados
        private void Carregar(int _idmotivodemissao)
        {
            try
            {
                var consulta = (from motivodemissao in _context.tab_tipo_motivo_demissao
                                where motivodemissao.Id_motivo_demissao == _idmotivodemissao
                                select motivodemissao);

                var listConsulta = consulta.ToList();

                foreach (var list in listConsulta)
                {
                    this._idMotivoDemissao = list.Id_motivo_demissao;
                    this._descricao = list.descricao;
                    this._codigoRAIS = list.CODIGO_RAIS;
                    this._flag = list.Flag;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion

        #region Métodos Públicos
        public List<MotivoDemissao> SelectAll()
        {
            try
            {
                List<MotivoDemissao> listMotivo = new List<MotivoDemissao>();

                var consulta = (from motivodemissao in _context.tab_tipo_motivo_demissao
                                select motivodemissao);

                var listConsulta = consulta.ToList();

                foreach (var list in listConsulta)
                {
                    MotivoDemissao motivodemissao = new MotivoDemissao();
                    motivodemissao.IdMotivoDemissao = list.Id_motivo_demissao;
                    motivodemissao.Descricao = list.descricao;
                    motivodemissao.CodigoRAIS = list.CODIGO_RAIS;
                    motivodemissao.Flag = list.Flag;

                    listMotivo.Add(motivodemissao);
                }
                
                return listMotivo;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion
    }
}
